home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML Authority.sea / XML Authority / Required / ldapjdk.jar / netscape / ldap / LDAPCompareAttrNames.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-13  |  1.8 KB  |  94 lines

  1. package netscape.ldap;
  2.  
  3. import java.util.Enumeration;
  4. import java.util.NoSuchElementException;
  5.  
  6. public class LDAPCompareAttrNames implements LDAPEntryComparator {
  7.    String[] m_attrs;
  8.    boolean[] m_ascending;
  9.  
  10.    public LDAPCompareAttrNames(String var1) {
  11.       this.m_attrs = new String[1];
  12.       this.m_attrs[0] = var1;
  13.       this.m_ascending = new boolean[1];
  14.       this.m_ascending[0] = true;
  15.    }
  16.  
  17.    public LDAPCompareAttrNames(String var1, boolean var2) {
  18.       this.m_attrs = new String[1];
  19.       this.m_attrs[0] = var1;
  20.       this.m_ascending = new boolean[1];
  21.       this.m_ascending[0] = var2;
  22.    }
  23.  
  24.    public LDAPCompareAttrNames(String[] var1) {
  25.       this.m_attrs = var1;
  26.       this.m_ascending = new boolean[var1.length];
  27.  
  28.       for(int var2 = 0; var2 < var1.length; ++var2) {
  29.          this.m_ascending[var2] = true;
  30.       }
  31.  
  32.    }
  33.  
  34.    public LDAPCompareAttrNames(String[] var1, boolean[] var2) {
  35.       this.m_attrs = var1;
  36.       this.m_ascending = var2;
  37.       if (this.m_ascending == null) {
  38.          this.m_ascending = new boolean[var1.length];
  39.  
  40.          for(int var3 = 0; var3 < var1.length; ++var3) {
  41.             this.m_ascending[var3] = true;
  42.          }
  43.       }
  44.  
  45.    }
  46.  
  47.    public boolean isGreater(LDAPEntry var1, LDAPEntry var2) {
  48.       return var1.equals(var2) ? false : this.attrGreater(var1, var2, 0);
  49.    }
  50.  
  51.    boolean attrGreater(LDAPEntry var1, LDAPEntry var2, int var3) {
  52.       Enumeration var4 = var1.getAttributeSet().getAttributes();
  53.       Enumeration var5 = var2.getAttributeSet().getAttributes();
  54.       String var6 = null;
  55.       String var7 = null;
  56.       String var8 = this.m_attrs[var3];
  57.       boolean var9 = this.m_ascending[var3];
  58.  
  59.       try {
  60.          while(var5.hasMoreElements()) {
  61.             LDAPAttribute var10 = (LDAPAttribute)var5.nextElement();
  62.             if (var8.equalsIgnoreCase(var10.getName())) {
  63.                var7 = (String)var10.getStringValues().nextElement();
  64.                break;
  65.             }
  66.          }
  67.  
  68.          while(var4.hasMoreElements()) {
  69.             LDAPAttribute var13 = (LDAPAttribute)var4.nextElement();
  70.             if (var8.equalsIgnoreCase(var13.getName())) {
  71.                var6 = (String)var13.getStringValues().nextElement();
  72.                break;
  73.             }
  74.          }
  75.       } catch (ClassCastException var11) {
  76.          return false;
  77.       } catch (NoSuchElementException var12) {
  78.          return false;
  79.       }
  80.  
  81.       if (var7 == null ^ var6 == null) {
  82.          return var6 != null;
  83.       } else if (var7 != null && !var7.equalsIgnoreCase(var6)) {
  84.          if (var9) {
  85.             return var6.compareTo(var7) > 0;
  86.          } else {
  87.             return var6.compareTo(var7) < 0;
  88.          }
  89.       } else {
  90.          return var3 == this.m_attrs.length - 1 ? false : this.attrGreater(var1, var2, var3 + 1);
  91.       }
  92.    }
  93. }
  94.